\section{TreeView Model}
\subsection{Etat de l'art}

\begin{frame}\frametitle{\subsecname}

\begin{block}{Complexité}
\begin{itemize}
	\item Longueurs de fichiers
	\item Balises spécifiques à l'outil PRISME
	\item 1 documentation/balise
	\item Test compliqué
\end{itemize}
\end{block}

\begin{block}{Proposition}

\begin{itemize}
\item Réalisation d'un moteur d'interprétation des fichiers : 1 balise= 1 classe d'affichage
\item Navigation par une arborescence (type explorateur de fichier)
\item Représentation de la balise sélectionnée
\end{itemize}
\end{block}

\end{frame}

\subsection{Réalisation}

\subsubsection{Modèle d'interpréteur}
	\begin{frame}\frametitle{\subsubsecname}
	\begin{columns}
	\begin{column}[l]{0.4\textwidth}
		\begin{itemize}
		\item Sorties multiples 
		\item Entrée multiples
		\item Gestion arborescence via Design Pattern Decorator
		\end{itemize}
	\end{column}
	\begin{column}[r]{0.6\textwidth}
		\begin{figure}
			\includegraphics[width=\textwidth]{img/inodeDiag.jpg}
		\end{figure}
	\end{column}
	\end{columns}
		
	\end{frame}

\subsubsection{Moteur d'interprétation}
	\begin{frame}\frametitle{\subsubsecname}
	\begin{columns}
	\begin{column}[l]{0.4\textwidth}
		\begin{itemize}
		\item 1 construction d'objet/appel 
		\item patron : Monteur + Java Reflection => recherche automatisée des interpreteurs
		\item Comportement par défaut défini
		\end{itemize}
	\end{column}
	\begin{column}[r]{0.6\textwidth}
		\begin{figure}
			\includegraphics[width=\textwidth]{img/treeviewUml.png}
		\end{figure}
	\end{column}
	\end{columns}
	\end{frame}


	\begin{frame}[fragile]\frametitle{Algorithme de lecture de balise XML}
		\begin{verbatim}
Variable NoeudParent

Pour chaque Noeud XML n du Document
|	Si la balise courante n possede une classe Interpretor
|	|	alors 	NoeudCourant = nouvel Interpretor correspondant
|	|	|	On l'attache a NoeudParent
|	Sinon
|	|	Si le NoeudParent sait interpreter la balise courante
|	|	|	alors NoeudParent interprete la balise courante.
|	|	Sinon 
|	|	|	NoeudCourant = nouvel objet InterpretorNodeDefault
|	|	|	On l'attache a NoeudParent
		\end{verbatim}		
	\end{frame}

\subsubsection{Outils génériques}

\begin{frame}\frametitle{\subsubsecname}
	\begin{columns}
	\begin{column}[l]{0.6\textwidth}
		\begin{block}{JavaScript}
		\begin{itemize}
		\item JQuery : Librairie JavaScript, manipulation de page, affichage graphique,\ldots
		\item Plug-in JQuery
\begin{itemize}
		\item Jstree : TreeView
		\item qTips : bulle d'aide
		\item CodeMirror : éditeur de code
\end{itemize}
		\end{itemize}
		\end{block}
		\begin{block}{Java}
		\begin{itemize}
		\item SvnKit : API Java/SVN
		\item SAX Parser : Parser XML
		\end{itemize}
		\end{block}
	\end{column}
	\begin{column}[r]{0.4\textwidth}
		\begin{figure}
			\includegraphics[width=0.6\textwidth]{img/jquery.png}
		\end{figure}
		\begin{figure}
			\includegraphics[width=0.6\textwidth]{img/svnkit.jpg}
		\end{figure}
	\end{column}
	\end{columns}
\end{frame}
